Paper reading - Fit and Prune Fast and Training-free Visual Token Pruning for Multi-modal Large Language Models
任务
当前MLLM依赖于大量的视觉token做出高精度的视觉推理,例如LLaVa使用576 image patches as visual tokens,这相较于纯文本带来了6.2倍的计算时长开销。此外,一些其他工作正在使用提高图像分辨率的方法来缓解MLLM的视觉缺陷,但进一步加剧了计算量。
作者想要得到一种方法来在MLLM的图像token输入中,进行压缩,从而进行推理时的加速,且不能太影响下游任务精度。
同时,作者认为先前的方法依赖于大量的实验来确定超参数,他提出的方法需要具有一定的泛化能力,并且超参数确认简单 can be obtained in about 5 minutes for all VL tasks
motivation
- 大规模视觉token在MLLM中的存在明显的冗余,MLLMs 的多头注意力机制是单向的,而非真正“全局”的。简而言之,MLLMs 仅将信息从前一个标记传递到后一个标记,其视觉标记通常置于文本问题之前。在这种情况下,它们主要作用是为文本标记提供视觉语义,但实际上其中大部分并未被激活。

如图,大部分蓝色部分(不相关语义)实际上几乎不参加推理,图像到文本注意力非常集中。

- 作者将确定压缩比例这一超参数的问题转换成一个统计问题。将压缩问题转换为这样的问题:给定一个采样样本集合, 再给定一个计算开销 ,设压缩策略为, 目标是找到一个压缩比够大(满足计算开销到以下)的,使得在上整体的注意力分布变化最小
方法
作者只对多头注意力层进行修剪

得到修剪策略
对于采样样本集, 计算每一层的视觉token自注意力和视觉-文本交叉注意力。假设视觉token数N,文本token数M,第i层的第j个视觉token的平均注意力为 , s和c分别代表自注意和交叉注意,A代表是在上取的平均
移除策略P可以建模成 (假设模型有k层)
表示在第i层新移除的token数量,注意前面层移除的token也不会传递给后面层,也就是说移除的总数是单调增的
采用一个注意力相差阈值和计算开销两者一起控制裁剪,具体来说,是提前给定的,是二分查找计算出来的值

用通俗的话翻译就是:
- 将注意力分布的差别简化为平均每个token的自注意力/交叉注意力之和的差别,即是否删除某个token,注意力和的相对变化需要小于阈值
- 由于只计算和,所以可以对自注意力、交叉注意力两个集合分别按照大小排序 —— 注意力分布变化最小的保证转化为,总是优先考虑删除注意力最小的token
- 给定一个阈值, 对于每一层遍历,对于自注意力、交叉注意力分别不断尝试删除token,直到注意力变化达到阈值, 而这一层最后的策略P,即token删除数量为自注意力删除集合和交叉注意力集合的交集的大小
- 现在有了一个删除策略, 计算它是否满足计算开销约束(文中并没有具体说是怎么计算的,应该是根据模型的删除后token和参数量估算FLOPS,或者是某种直接测量计算量的工具,用的显卡是单张A100)
-
如果满足,说明删除策略是可行的,但说不定太大删除太多了,需要调小;如果不满足,说明删除策略不可行,说明太小了,需要调大。因此,二分查找直到找到一个满足计算开销约束的,且这个的左右区间长度小于阈值(后 文实验是0.01),则这个对应的删除策略就是最终的删除策略。
-
最后效果是在满足计算开销约束的情况下,尽可能保留更多的视觉token
关于这样的算法最后带来的